Attitude determination using infrared earth horizon sensors

ABSTRACT

Described herein are systems and methods for attitude determination using infrared Earth horizon sensors (EHSs) with Gaussian response characteristics. Attitude information is acquired by detecting Earth&#39;s infrared electromagnetic radiation and, subsequently, determining the region obscured by Earth in the sensors&#39; fields of view to compute a nadir vector estimation in the spacecraft&#39;s body frame. The method can be applied when two sensors, each with known and distinct pointing directions, detect the horizon, which is defined as having their fields of view partially obscured by Earth. The method can be implemented compactly to provide high-accuracy attitude within small spacecraft, such as CubeSat-based satellites.

CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application No. 61/982,414 filed Apr. 22, 2014, which application is incorporated herein by reference in its entirety.

GOVERNMENT RIGHTS

This invention was made with Government support under Contract No. FA8721-05-C-0002 awarded by the U.S. Air Force. The Government has certain rights in the invention.

BACKGROUND

In spacecraft control systems, the ability to provide accurate and robust attitude determination and control enable spacecraft in orbit to counter disturbances in nominal operation and to achieve mission-specific requirements. The accuracy and precision requirements are particularly challenging for small satellites (and other spacecraft) where limited volume, mass, and power are available. Attitude knowledge of small spacecraft is often achieved using devices such as sun sensors and magnetometers. However, these sensors have various limitations. Sun sensors, for example, lose their functionalities in periods of eclipse in orbit. Magnetometers, as another example, cannot acquire high accuracy attitude measurements due to the constantly changing Earth magnetic field. Earth horizon sensors (EHSs) have emerged as an efficient and relatively inexpensive means for providing relatively precise attitude determination, capable of satisfying attitude knowledge requirements of small spacecraft in low-Earth orbit (LEO), especially for missions with Earth-specific science objectives.

While the Sun and stars are effectively point sources from the perspective of a spacecraft in LEO, Earth appears as a large and bright target that is easily detected. For a spacecraft in LEO, Earth subtends a solid angle significantly wider than the solid angle of the Sun and of Betelgeuse (the ninth-brightest star in the night sky). Due to the large expanse of Earth in the spacecraft-centered unit sphere, detection of the horizon is required for precise attitude knowledge. Horizon sensors provide the primary means to directly determine the spacecraft's attitude with respect to Earth.

Infrared Earth horizon sensors detect Earth's electromagnetic radiation in the infrared spectrum, caused by the Sun's radiation being absorbed and re-radiated by Earth's surface and atmosphere. In the long-wave infrared spectrum beyond 4 μm, Earth becomes a dominant infrared radiation source, exceeding the Sun irradiation level by several orders of magnitude. Infrared radiation is often referred to as thermal radiation due to the thermal energy generated by the emission of electromagnetic radiation in this spectrum. The thermal energy emitted by Earth can be measured using thermopile detectors, devices that convert thermal energy collected in the sensor's field of view (FOV) into electrical energy. Commercial thermopile sensor units generally have Gaussian sensitivity, with the half-width at half-maximum (HWHM) defined as the effective half-angle FOV.

While large spacecraft often have EHS on scanning wheels, it is more practical for small spacecraft to have fix, body-mounted EHS system due to mass, volume, and power limitations. Thermopiles can be mounted at various locations with fixed and predetermined directions, depending on the mission altitude and sensors' FOV. Arrays of thermopiles have been utilized to maintain nadir pointing by ensuring zero temperature difference between sensors in each sensor pair along the velocity vector and side directions. To fully determine the spacecraft's attitude in an inertial frame through the TRIAD method, a full expression of the nadir vector in the spacecraft's body frame is needed. The second reference vector used in the TRIAD method can be the Sun vector, acquired by sun sensors during daytime, or the magnetic field direction, which can be determined using magnetometers during periods of eclipse.

SUMMARY

Described herein is a method to estimate a nadir vector using readings from two or more Earth horizon sensors and at least one reference sensor. This estimation method is applicable when two sensors with distinct mounting boresight directions detect the horizon, corresponding to the case where the sensors' field of view (FOV) are partially obscured by Earth. Depending on the sensors' FOV, Earth horizon sensors (EHSs) can be used for fine or coarse attitude knowledge. The attitude estimation method accommodates the memory and computation limitations of relatively small spacecraft (e.g., satellites conforming to the CubeSat specification, such as 1U, 2U, 3U, 6U, or 12U CubeSats).

According to one aspect of the disclosure, a system for spacecraft attitude determination comprises a plurality of horizon sensors, each of the plurality of horizon sensors having a respective field-of-view (FOV), each of the plurality of horizon sensors having a sensitivity to the portion of the respective FOV obscured by Earth and an attitude determination module coupled to the plurality of horizon sensors. The attitude determination module can be configured to obtain horizon sensor readings from the horizon sensors, determine an Earth disk radius in a spacecraft's body frame, convert the horizon sensor readings to nadir angles, and estimate a nadir vector using the nadir angles and the Earth disk radius.

In some embodiments, the attitude determination module is further configured to receive spacecraft position information; and determine an Earth disk radius in a spacecraft's body frame based upon the spacecraft position information. In certain embodiments, each of the plurality of horizon sensors has a Gaussian sensitivity to the portion of a respective FOV obscured by Earth and the attitude determination module uses a Gaussian approximation to convert the horizon sensor readings to nadir angles.

In some embodiments, the system further comprises a reference sensor coupled to provide reference sensor readings to the attitude determination module. Here, the attitude determination module may be configured to determine a plurality of possible nadir vector solutions using the nadir angles and the Earth disk radius, obtain a reference sensor reading, and choose one of the plurality of possible nadir vector solutions based upon the reference sensor reading.

In certain embodiments, the plurality of horizon sensors comprise a first horizon sensor mounted along a first axis in a body coordinate system, a second horizon sensor mounted along a second axis in the body coordinate system. The reference sensor can be mounted along a third axis in the body coordinate system. At least one of the plurality of horizon sensors may comprise a thermopile or an infrared radiation (IR) sensor. The reference sensor may comprise a magnetometer or a Sun sensor.

In various embodiments, the system further comprises an attitude control module coupled to receive estimated nadir vector information from the attitude determination module, the attitude control module configured to adjust a spacecraft's attitude based upon received estimated nadir vector information.

According to another aspect of the disclosure, a method for spacecraft determining attitude comprises: obtaining horizon sensor readings from a plurality of horizon sensors, each of the plurality of horizon sensors having a respective field-of-view (FOV), each of the plurality of horizon sensors having a sensitivity to the portion of the respective FOV obscured by Earth; determining an Earth disk radius in a spacecraft's body frame; converting the horizon sensor readings to nadir angles; and estimating a nadir vector using the nadir angles and the Earth disk radius. In various embodiments, the method further comprises adjusting a spacecraft's attitude based upon an estimated nadir vector.

In certain embodiments, the method further comprises receiving spacecraft position information, and determining an Earth disk radius in a spacecraft's body frame comprises determining an Earth disk radius based upon the spacecraft position information. In some embodiments, each of the plurality of horizon sensors has a Gaussian sensitivity to the portion of a respective FOV obscured by Earth, and converting the horizon sensor readings to nadir angles comprises converting the horizon sensor readings to nadir angles using a Gaussian approximation.

In various embodiments, the method further comprises determining a plurality of possible nadir vector solutions using the nadir angles and the Earth disk radius, obtaining a reference sensor reading from a reference sensor, and choosing one of the plurality of possible nadir vector solutions based upon the reference sensor reading.

In some embodiments of the method, obtaining horizon sensor readings from horizon sensors comprises obtaining a first horizon sensor reading from first horizon sensor mounted along a first axis in the spacecraft's body coordinate system and obtaining a second horizon sensor reading from a second horizon sensor mounted along a second axis in the spacecraft's body coordinate system. Here, obtaining a reference sensor reading may comprise obtaining a reference sensor reading from a reference sensor mounted along a third axis in the spacecraft's body coordinate system.

In certain embodiments, obtaining horizon sensor readings from horizon sensors comprises obtaining readings from thermopiles or infrared radiation (IR) sensors. Obtaining a reference sensor reading may comprise obtaining a reading from a magnetometer or a Sun sensor.

BRIEF DESCRIPTION OF THE DRAWINGS

The concepts, structures, and techniques sought to be protected herein may be more fully understood from the following detailed description of the drawings, in which:

FIG. 1 is a diagram of an illustrative spacecraft orbiting Earth;

FIG. 2 is a block diagram of an illustrative attitude determination system and an illustrative attitude control system for use with the spacecraft of FIG. 1;

FIG. 3A is a diagram showing a spacecraft-centered celestial sphere with projections of sensor's FOV and Earth disk;

FIG. 3B is a diagram showing a geometric representation of nadir vector solutions;

FIGS. 3C and 3D are diagrams showing ambiguous nadir vector solutions;

FIG. 3E is a diagram showing a Gaussian sensitivity approximation;

FIG. 3F is a diagram of a technique for determining Earth disk radius using spacecraft position information;

FIG. 4 is a flowchart of a method for use with the spacecraft of FIG. 1; and

FIG. 5 is a schematic representation of an illustrative computer for use with the systems and methods of FIGS. 1, 2, and 4.

The drawings are not necessarily to scale, or inclusive of all elements of a system, emphasis instead generally being placed upon illustrating the concepts, structures, and techniques sought to be protected herein.

DETAILED DESCRIPTION

Within the following description, a body coordinate system (sometimes referred to as a “body frame”) for a spacecraft is defined as follows: the +x direction is along the spacecraft's nominal velocity vector, the +z direction nominally points toward nadir, and the +y direction points to a side of the spacecraft selected so as to complete a right-hand coordinate system. It will be understood, however, that concepts, methods, and systems described herein can be used with any body coordinate system.

Referring to FIG. 1, an illustrative spacecraft 100 is shown orbiting Earth 104. In various embodiments, the spacecraft 100 is a satellite orbiting Earth at an altitude between 160 kilometers and 2,000 kilometers and, thus, is said to be in low-Earth orbit (LEO). The +x, +y, and +z directions of the spacecraft's body coordinate system are indicated by arrows, which are identified by respective reference numerals 106 a, 106 b, and 106 c.

The spacecraft 100 comprises a plurality of Earth horizon sensors (EHSs or “horizon sensors”) generally denoted 102 to detect infrared electromagnetic radiation from Earth 104. In the example shown, two horizon sensors 102 a and 102 b are mounted along the x and y axes, respectively, to provide pitch and roll knowledge of the spacecraft. The horizon sensors 102 a and 102 b have corresponding field of views 108 a and 108 b. In some embodiments, spacecraft 100 also includes a so-called “reference sensor” (not shown), the purpose of which is described below. The reference sensor may be mounted along a different axis from the horizon sensors 106 (i.e., along the z axis in the example of FIG. 1).

The horizon sensors 102 are mounted with a so-called “dip” angle 110 (denoted θ_(z) in equations below) in the +z direction such that Earth's horizon can be detected. In various embodiments, the dip angle θ_(z) between the sensors' boresights and the x-y plane is selected based upon the spacecraft's target altitude h, and the average Earth radius R_(E)≅6,371 kilometers (km), as shown in Equation 1.

$\begin{matrix} {\theta_{Z} = {\cos^{- 1}\left( \frac{\overset{\_}{R_{E}}}{\overset{\_}{R_{E}} + h} \right)}} & \left( {{Equation}\mspace{14mu} 1} \right) \end{matrix}$

The horizon sensors 102 may comprise any suitable sensors to detect Earth's electromagnetic radiation, such as infrared radiation (i.e., thermal energy emitted by Earth). Such radiation can be measured using thermopile detectors, devices that convert thermal energy collected in the sensor's field of view (FOV) into electrical energy. In various embodiments, the horizon sensors 102 comprise commercial thermopile sensor units having Gaussian sensitivity, with the half-width at half-maximum (HWHM) defined as the effective half-angle field of view.

It should be understood that the configuration of horizon sensors 102 shown in FIG. 1 and described herein is merely illustrative. In other embodiments, a spacecraft 100 comprises three or more horizon sensors 102.

In a particular embodiment, a spacecraft 100 comprises six horizon sensors 102, with three mounted in the −x direction and three mounted in the +y direction. The horizon sensors 102 have Gaussian sensitivity with a narrow FOV (e.g., between 5° and 10°). The three sensors on each mount are reserved to be looking at deep space, Earth horizon, and Earth, and are tilted in the +z direction at angles which may be determined by the spacecraft's altitude. In one example, three horizon 102 sensors are titled in the z direction by about 10°, 20°, and 30°, respectively. Multiple sensors on a single mount can be combined to compute an effective sensor reading, mitigating the effect of varying infrared emission from Earth's surface and background disturbances.

In certain embodiments, the spacecraft 100 is a satellite conforming to the CubeSat specification. Accordingly, the spacecraft 100 may have dimensions of about 10×10×10 cm (“1U”), 20×10×10 cm (“2U”), 30×10×10 cm (“3U”), or any other multiple of 1U dimensions generally conforming to the CubeSat specification. A 1U CubeSat has mass less than or equal to 1.33 kilogram (kg).

In general operation, the spacecraft 100 acquires attitude information by detecting infrared electromagnetic radiation from Earth 104 via horizon sensors 102. Earth's surface and atmosphere absorbs and reradiates the Sun's radiation the infrared (IR) range. For spacecraft in LEO, IR radiation from the Sun and other stars is insignificant due to the small solid angle subtended by the stars in comparison to Earth. For example, at LEO, the Sun may have a solid angle of about 7×10⁻⁵ steradian (sr), whereas Earth may have a solid angle of about 4 sr. Thus, using EHSs 102 angled down towards Earth's horizon, the spacecraft 100 can determine the region obscured by Earth 104 in each horizon sensor's field of view. Based upon this information, attitude estimation techniques can be deployed to estimate the nadir vector and adjust the spacecraft's attitude accordingly, as described further below in conjunction with FIGS. 3A-3F and 4.

FIG. 2 shows an attitude determination system 200 coupled to an attitude control system 220. The attitude determination and/or control systems 200, 220 may be housed within a spacecraft (or otherwise supported by the spacecraft), such as spacecraft 100 of FIG. 1.

The attitude determination system 200 comprises an attitude determination module 202 and a plurality of horizon sensors 204 coupled thereto. In the embodiment shown, the system 200 includes two horizon sensors 204 a, 204 b, which could be the same as or similar to horizon sensors 102 a, 102 b of FIG. 1. In some embodiments, the horizon sensors 204 a, 204 b are positioned (or otherwise disposed or configured) so that the resulting nadir vector solutions are separated by an angle sufficiently large to unambiguously choose the correct nadir vector, as described below in conjunction with FIGS. 3B and 3D.

In some embodiments, the system 200 further comprises an additional attitude sensor 206, separate and distinct from the horizon sensors 204, which can be coupled to the attitude determination module 202. As will be discussed below, the additional sensor 206 is used to resolve ambiguity between nadir vector solutions and, therefore, is referred to herein as a “reference sensor” 206. The reference sensor 206 can be any suitable attitude sensor that is suitable to resolve ambiguity from EHS solutions according to the techniques described below in conjunction with FIGS. 3A-3F and 4. In some embodiments, the reference sensor 206 is relatively inaccurate compared the horizon sensors 204. For example, the reference sensor 206 may comprise a Sun sensor (for use during daytime) or a magnetometer (for use during daytime or eclipse in LEO). However, it should be understood that the reference sensor 206 could also be highly accurate.

In various embodiments, the reference sensor 206 may be mounted along a different axis from the horizon sensors 204 a, 204 b. For example, if the horizon sensors 204 a and 204 b are mounted along the x and y axes of the body coordinate system, respectively, the reference sensor 206 can be mounted along the z axis of the body coordinate system.

The attitude determination module 202 is configured to determine a spacecraft's attitude in an inertial frame based upon readings from the sensors 204, 206. In various embodiments, the attitude determination module 202 estimates a nadir vector, which can be used to compute a complete solution to spacecraft attitude. For example, the TRIAD method can be used to convert the nadir vector along with a second reference vector (e.g., a Sun vector) into a unique spacecraft attitude. Illustrative processing for use within the attitude determination module 202 is shown in FIG. 4 and described below on conjunction therewith.

The nadir vector estimation techniques described below rely on precise knowledge of sensor boresight directions, which are used as body-fixed reference vectors. Since the sensor boresight directions do not align with the spacecraft's body axes but tilted in the z-direction to allow horizon sensing, mounting errors are likely to occur during the assembly process of the sensor unit, mostly in the dip angle θ. Accordingly, body-fixed reference vectors for each horizon sensor 204 may be stored, hardcoded, hardwired, or otherwise configured within the attitude determination module 202.

In some embodiments, the attitude determination module 202 is coupled to receive spacecraft position data from a position determination module 226. Many satellites and other type of spacecraft have position knowledge through the Global Positioning System (GPS) and/or Two-line Element (TLE) data. Accordingly, the position determination module 226 could correspond to a GPS module (e.g., a GPS receiver), TLE data, or any other suitable source of position data available upon the spacecraft.

The attitude control system 220 comprises an attitude control module 222 and a plurality of actuators 224. An actuator 224 may correspond to any suitable device for controlling the orientation of a spacecraft (or other body supporting the actuators 224) with respect to an inertial frame of reference. Non-limiting examples of actuators 224 include: thrusters; spin stabilization devices; flywheels, such as reaction wheels, momentum wheels, and control moment gyros; solar sails; gravity-gradient stabilization devices; and magnetic torquers. In various embodiments, the attitude control system 220 comprises three actuators 224 a, 224 b, and 224 c, each actuator controlling orientation along a corresponding one of the spacecraft's three body frame axes.

The attitude control module 222 is configured to receive attitude information generated by the attitude determination system 220, such as an estimated nadir vector, and to adjust the spacecraft's orientation accordingly, using actuators 224. In various embodiments, the attitude control module 222 uses the TRIAD method, orienting the spacecraft such that the body frame +z axis is aligned with the nadir vector, while using a second reference vector (e.g., a Sun vector) to determine rotation around the nadir vector. Other suitable attitude control techniques may be used.

FIGS. 3A-3F illustrate how two or more horizon sensors and an additional reference sensor can be used to estimate a nadir vector for a spacecraft in LEO with relatively high accuracy. The concepts, models, and techniques herein below in conjunction with FIGS. 3A-3F apply to the method of FIG. 4.

FIG. 3A shows a spacecraft-centered celestial sphere with projections of sensor's FOV and Earth disk. A unit sphere 300 is defined to be centered about a spacecraft 302, as shown. The spacecraft 302, which may be the same as or similar to spacecraft 100 of FIG. 1, comprises horizon sensors, each horizon sensor having a corresponding FOV. A given sensor's FOV, along with Earth, can be projected onto the unit sphere 300 as shown by respective circles 304 and 306. Both projections 304, 306 are modeled as perfect circles with known angular radii. The center of the sensor field projection 304 on the spacecraft-centered sphere 300 represents the direction of the horizon sensor boresight; and the center of the Earth projection (or “Earth disk”) 306 denotes the direction of the nadir vector. The area obstructed by Earth in the sensor's FOV is modeled as the overlap area 308 (cross-hatched and denoted S in FIG. 3A) between the projections of the sensor's FOV and Earth onto the spacecraft-centered unit sphere 300.

For simplicity of explanation, it is assumed herein that each horizon sensor has a constant sensitivity across its FOV. In other words, it is assumed that Earth infrared emission at the wavelength of interest is uniform within the sensor's FOV. Thus, the sensor reading is assumed to be proportional to the area obstructed by Earth in the sensor's FOV (i.e., overlap area S 308). In the case where the horizon sensors have Gaussian response (e.g., conventional thermopiles), a Gaussian approximation technique described below in conjunction with FIG. 3E can be used to improve attitude accuracy.

In addition, it is assumed herein the angle subtended by Earth (the Earth disk radius ρ) in the spacecraft's body frame remains constant during operation, which is generally only a good approximation when the spacecraft's altitude is unchanging and the horizon curve observed by the sensor is circular. To account for the ellipsoid shape of Earth and/or changing spacecraft altitude, the Earth disk radius ρ can be dynamically determined using the spacecraft's position, as described below in conjunction with FIG. 3F.

The overlap area S 308 between the projections of the sensor's FOV 304 of radius ε and the Earth disk 302 of radius ρ represents the region obstructed by Earth within the sensor's FOV. The angle between the nadir vector and the sensor boresight is denoted by α. When α≧ρ+ε, the two circular projections 304, 306 do not overlap, representing the case where Earth is not detected by the sensor. On the other hand, when α≦ρ−ε, the sensor's FOV is fully obstructed by Earth, assuming the sensor's FOV 304 is narrower than the Earth disk 306. Thus, Earth's horizon can be detected by the horizon sensors when α is within the range (ρ−ε, ρ+ε). The overlap area S 308 in this range can be computed as a function of α, ε, and ρ as shown in Equation 2.

$\begin{matrix} {{S\left( {\alpha,ɛ,\rho} \right)} = {{2\left\lbrack {\pi - {{\cos(\rho)}{\cos^{- 1}\left( \frac{{\cos(ɛ)} - {{\cos(\rho)}{\cos(\alpha)}}}{{\sin(\rho)}{\sin(\alpha)}} \right)}}} \right\rbrack} - {{\cos(ɛ)}{\cos^{- 1}\left( \frac{{\cos(\rho)} - {{\cos(ɛ)}{\cos(\alpha)}}}{{\sin(ɛ)}{\sin(\alpha)}} \right)}} - {\cos^{- 1}\left( \frac{{\cos(\alpha)}\; - {{\cos(ɛ)}{\cos(\rho)}}}{{\sin(ɛ)}{\sin(\rho)}} \right)}}} & \left( {{Equation}\mspace{14mu} 2} \right) \end{matrix}$

For known values of ε and ρ, this relationship allows a sensor reading (assumed here to be proportional to S) to be converted to a nadir angle α relative to a fixed and known vector in the spacecraft body frame, leading to partial attitude knowledge. Since it may be computationally intensive to invert Equation 2 to solve for a as a function of S, a lookup table implementation can be provided. To narrow down the set of solutions, at least two nadir angles relative to distinct boresight vectors are needed to provide a finite set of nadir vector solutions.

As shown in FIG. 3B, the problem becomes finding the intersection of two cones 310 a, and 310 b, each with a different axis direction, defined by respective sensor boresight vectors 312 a and 312 b, and respective cone angles 314 a and 314 b. The cone angles 314 a, 314 b are nadir angles that can determined using Equation 2, described above. As shown, Ŝ₁ and Ŝ₂ represent the sensor boresight vectors, and φ₁ and φ₂ are the corresponding nadir angles. The intersection of cones 310 a, 310 b are shown as vectors {circumflex over (P)} and {circumflex over (P)}′, representing the two possible nadir vectors.

The analytical form of the possible nadir vectors are the solutions to the following system of equations: {right arrow over (P)}·Ŝ ₁=cos(α₁) {circumflex over (P)}·Ŝ ₂=cos(α₂) |{circumflex over (P)}|=1  (Equations 3).

The first two equations ensure that the angles between the solutions and the boresight vectors equal to the nadir angles φ₁, φ₂ as determined above. The third equation is a normalization condition, which is required for the first two equations to hold. This system of three equations (Equations 3) consists of three variables, which are the three components of the nadir vector. It can be solved analytically through variable eliminations and substitutions for a finite set of solutions. Algebraically, there can be zero, one, or two vector solutions to the system of equations since the third equation is of second order. When both sensors detect the horizon, the system of equations has at least one solution, assuming low sensor noise level. The system of equations (Equations 3) has exactly one solution when the spacecraft is oriented such that the nadir vector is on the plane containing Ŝd and Ŝ₂, which is unlikely to occur due to jitters and other disturbances. In most cases, there are two possible nadir vector solutions to the system of equations, leading to ambiguity in the estimation results.

FIGS. 3C and 3D illustrate ambiguity in the possible nadir vector solutions. Within FIGS. 3C and 3D, the arrows labeled “x,” “y,” and “z” correspond to the +x, +y, and +z directions in a spacecraft's actual body frame. The spacecraft (not shown in FIGS. 3C and 3D) may be the same as or similar to spacecraft 100 of FIG. 1.

FIG. 3C shows a first possible attitude for the spacecraft, where the +z body frame direction is substantially aligned with the spacecraft's true nadir vector 321. The spacecraft may have two horizon sensor's, represented in FIG. 3C by FOV's 320 a and 320 b.

FIG. 3D shows a second possible attitude for the spacecraft that is the result of rotating the spacecraft about the boresight of one sensor (i.e., the sensor represented by FOV 320 a) until the other sensor (i.e., the sensor represented by FOV 320 b′) detects the other side of Earth's horizon 322. It is appreciated that the two different scenarios of FIGS. 3C and 3D may yield the same horizon sensor readings since both horizon sensors could be obstructed by Earth by the same amount. However, the spacecraft's +z direction is substantially aligned with the nadir vector 321 in FIG. 3C, but not in FIG. 3D.

If, as illustrated in FIGS. 3C and 3D, the possible nadir vector solutions (i.e., {circumflex over (P)} and {circumflex over (P)}′ in FIG. 3B) are well separated, the nadir vector solution ambiguity can be resolved by the use of an additional reference sensor (e.g., reference sensor 206 in FIG. 2). For example, a sun sensor (in daytime) or a magnetometer (in eclipse) could be used to determine that the nadir vector solution corresponding to FIG. 3D is invalid by comparing the reference sensor attitude estimate to the attitude of FIG. 3D.

It can be seen in FIG. 3B as well as proven algebraically that {circumflex over (P)} and {circumflex over (P)}′ are reflections of each other through the plane containing boresight vectors Ŝ₁ and Ŝ₂. Therefore, the angle separation between {circumflex over (P)} and {circumflex over (P)}′ is twice the angle between {circumflex over (P)} and the plane defined by vectors Ŝ₁ and Ŝ₂. The angle separation between {circumflex over (P)} and {circumflex over (P)}′, denoted as θ_(pp′), can be computed as show in Equation 4.

$\begin{matrix} {\theta_{{PP}^{\prime}} = \left. 2 \middle| {\sin^{- 1}\left( {\hat{P} \cdot \frac{\left( {\hat{S_{1}} \times \hat{S_{2}}} \right)}{{\hat{S_{1}} \times \hat{S_{2}}}}} \right)} \right|} & \left( {{Equation}\mspace{14mu} 4} \right) \end{matrix}$

The separation angle between the possible nadir solutions depends on the relative position of the nadir vector ({circumflex over (P)}) and the sensor boresight vectors (Ŝ₁ and Ŝ₂). When the sensors have narrow FOV, the sensor readings are only valid when one of the possible nadir solutions is in near alignment with the z-axis. In this case, the separation angle can be expressed in terms of the dip angle θ_(z) between the sensors' boresights and the x-y body plane, as shown in Equation 5. The dip angle θ_(z) is defined above in conjunction with FIG. 1.

$\begin{matrix} \left. {\theta_{{PP}^{\prime}} \cong 2} \middle| {\sin^{- 1}\left( \frac{\cos\;\theta_{Z}}{\sqrt{1 + {\sin^{2}\theta_{Z}}}} \right)} \right| & \left( {{Equation}\mspace{14mu} 5} \right) \end{matrix}$

In some embodiments, the horizon sensors are configured such that the angle separation between the two possible nadir solutions θ_(pp′) is at least 106°. For example, at an altitude of 500 km and with sensors' FOV half-angle of 5°, the angle separation between the two possible nadir solutions θ_(pp′) is approximately 120° when one of the solutions aligns with the z-axis and 106° in the worst case scenario. With such a wide angle separation, the nadir vector ambiguity can be easily resolved during nadir acquisition by comparing the two possible solutions to the reading of an additional reference attitude sensor (e.g., reference sensor 206 in FIG. 2). While wide FOV sensors increase the range of attitude in which horizon sensor readings are valid, the separation angle between the nadir solutions could be significantly reduced. For example, when the FOV half-angle is 30°, the separation angle can be as narrow as 2.3°. This ambiguity requires an additional reference sensor with better resolution to be resolved. Accordingly, in some embodiments, a spacecraft includes a first EHS system with wide FOV and/or other reference sensors to acquire close to nadir-pointing and a second EHS system with relatively narrow FOV to determine more accurate attitude knowledge.

Referring to FIG. 3E, the nadir vector estimation technique described above assumes that the sensor sensitivity is constant within the sensor's FOV. This technique is therefore said to employ a “uniform model.” Most commercial thermopiles, however, have Gaussian responsivity characteristics. In various embodiments, the Gaussian pattern of the sensor sensitivity can be incorporated into the nadir vector estimation technique described above to improve accuracy. This later technique is said to employ a “Gaussian model.”

Since modeling a sensor's sensitivity as a continuous 2D Gaussian function significantly increases the complexity of the obscuration calculation, the sensor field can instead be divided into regions 340 of constant sensitivity to approximate the Gaussian pattern. FIG. 3E shows an example of such Gaussian approximation with three constant sensitivity regions 340 a, 340 b, and 340 c, in descending order of sensitivity. For a valid horizon sensor reading, one or more of the regions 340 will overlap with the Earth disk 344 to define respective overlap area 342. In this example, each of the three regions 340 a, 340 b, and 340 c overlap with the Earth disk 344, with the corresponding overlap areas denoted S₁ 342 a, S₂ 342 b, and S₃ 342 c. By using the overlap function S(α, ε, ρ) from Equation 2 above, the overlap areas S₁, S₂, and S₃ can be computed by changing the sensor's angular radius parameter ε to the corresponding FOV half-angle of each sensor region. These calculations are shown in Equations 6, where r₁, r₂, r₃ (r₁<r₂<r₃) denote the radii of the regions' circular boundaries as projected onto a unit sphere around the spacecraft. S ₁ =S(α,r ₁,ρ) S ₂ =S(α,r ₂,ρ)−S(α,r ₁,ρ) S ₃ =S(α,r ₃,ρ)−S(α,r ₂,ρ)  (Equations 6)

The sensor response becomes the weighted sum of S₁, S₂, and S₃, with appropriate Gaussian approximation coefficients. It should be understood that, although this example shows three sensor regions 340, the techniques described herein could readily be adapted to any number of sensor regions greater than one.

The sensor response values can be pre-computed for different values of nadir angles to construct a lookup table. This lookup table, consisting of the modified sensor response and the corresponding nadir angle, can be pre-computed and stored upon the spacecraft (e.g., within the attitude determination module 202 of FIG. 2) for efficient nadir angle conversion for on-orbit operation.

Referring to FIG. 3F, in the description above, it is assumed that the half-angle subtended by Earth from the spacecraft's body frame is constant (the half-angle is denoted ρ in FIG. 3A). However, this assumption may result in significant inaccuracy in attitude estimation in the case of spacecraft in high-eccentricity orbit or in de-orbiting phase. As described above, the spacecraft may have position knowledge via a position determination module (e.g., position determination module 226 in FIG. 2). Such position knowledge can be used to better estimate the angle subtended by Earth in the spacecraft's body frame, improving the accuracy of the estimation method.

FIG. 3F shows a spacecraft 360 in orbit around Earth 362. It can be observed that the Earth half-angle (denoted ρ 364) is a function of the orbit radius (denoted R({right arrow over (r)}) 366) and the Earth radius at the horizon (denoted R_(E)(r) 368). For spacecraft with low altitude (i.e., in LEO), the Earth radius 368 can be approximated as the Earth radius directly under the spacecraft (denoted R′_(E)({right arrow over (r)}) 370). The Earth's half-angle 364 can be approximated as shown in Equation 7, where {right arrow over (r)} represents the spacecraft's position vector in an Earth-centered reference frame, θ_(gc)({right arrow over (r)}) represents a geocentric latitude of the spacecraft, a represents Earth's equatorial radius, and b represents Earth's polar radius.

$\begin{matrix} \begin{matrix} {\rho \cong {\sin^{- 1}\left( \frac{R_{E}^{\prime}\left( \overset{\rightarrow}{r} \right)}{R\left( \overset{\rightarrow}{r} \right)} \right)}} \\ {\cong {\sin^{- 1}\frac{\left( {\frac{\cos^{2}\left( {\theta_{gc}\left( \overset{\rightarrow}{r} \right)} \right)}{a^{2}} + \frac{\sin^{2}\left( {\theta_{gc}\left( \overset{\rightarrow}{r} \right)} \right)}{b^{2}}} \right)^{- \frac{1}{2}}}{\overset{\rightarrow}{r}}}} \end{matrix} & \left( {{Equation}\mspace{14mu} 7} \right) \end{matrix}$

The orbit radius R({right arrow over (r)}) 366 can be computed as the magnitude of the position vector. The Earth radius directly under the spacecraft R_(E)({right arrow over (r)}) 368 can be computed using the World Geodetic System 84 Ellipsoid Earth model. To avoid additional complexity, Earth's shape can be assumed to be spherical with radius R′_(E)({right arrow over (r)}) in other parts of the analysis, as shown by dashed line 372 in FIG. 3F. As a result, the angle ρ 364 subtended by Earth from the spacecraft body frame can be estimated efficiently (and, in some cases, in real time) based on the spacecraft's position knowledge.

FIG. 4 is a flowchart showing illustrative processing that can be implemented within a spacecraft and, more particularly, within an attitude determination and/or control system, such as systems 200 and 220 of FIG. 1. Rectangular elements (typified by element 402), herein denoted “processing blocks,” represent computer software instructions or groups of instructions. Alternatively, the processing blocks may represent steps performed by functionally equivalent circuits such as a digital signal processor circuit or an application specific integrated circuit (aSIC). The flow diagram does not depict the syntax of any particular programming language, but rather illustrates the functional information one of ordinary skill in the art requires to fabricate circuits or to generate computer software to perform the processing described. It should be noted that many routine program elements, such as initialization of loops and variables and the use of temporary variables are not shown. It will be appreciated by those of ordinary skill in the art that unless otherwise indicated herein, the particular sequence of blocks described is illustrative only and can be varied without departing from the spirit of the concepts, structures, and techniques sought to be protected herein. Thus, unless otherwise stated the blocks described below are unordered, meaning that, when possible, the functions represented by the blocks can be performed in any convenient or desirable order.

Referring to FIG. 4, an illustrative method 400 begins at block 402, where horizon sensor readings are obtained. In various embodiments, a first reading is obtained from a horizon sensor mounted along a spacecraft's x axis (e.g., sensor 204 a in FIG. 2) and a second reading is obtained from a horizon sensor mounted along the spacecraft's y axis (e.g., sensor 204 b in FIG. 2). The sensor readings can be used to estimate the area of the respective horizon sensors' field of view that is obstructed by Earth, as described below in conjunction with block 406.

At block 404, the Earth disk radius (e.g., radius ρ in FIG. 3A) is determined. As described above in conjunction with FIGS. 3A and 3F, the angle subtended by Earth (the Earth disk radius ρ) in the spacecraft's body frame can be modeled as a constant, which is a good approximation when the spacecraft's altitude is substantially unchanging. However, this assumption results in significant inaccuracy in attitude estimation in the case of spacecraft in high-eccentricity orbit or in de-orbiting phase. Thus, in some embodiments, the processing of block 404 corresponds to simply obtaining a constant Earth disk radius ρ. For example, the radius could be predetermined based upon a target spacecraft altitude and “hardcoded” within the attitude determination module. However, in other embodiments, block 444 corresponds to using spacecraft position data (e.g., GPS or TLE data) to estimate the angle subtended by Earth in the spacecraft's body frame ρ, such as using the technique described above in conjunction with FIG. 3F.

At block 406, the horizon sensor readings obtained at block 402 are converted to nadir angles using either using either a uniform model or a Gaussian model. As described above in conjunction with FIGS. 3A and 3E, commercially available EHSs typically have Gaussian sensitivity across their FOVs. In such cases, attitude accuracy can be improved using Gaussian approximation of the sensor sensitivity, by dividing the sensor field into multiple regions, as shown in FIG. 3E. However, if such improved accuracy is not required (or if the horizon sensor sensitivity is constant within the sensor's FOV), a uniform model may be used whereby the sensor reading is assumed to be proportional to the area obstructed by Earth in the sensor's FOV. Accordingly, the model used at block 406 may depend upon the type of horizon sensors used and/or the required attitude accuracy.

If the uniform model is used, block 406 may correspond to solving Equation 2 for the nadir angle α as a function of S, which is proportional to the sensor reading obtained, as described above in conjunction with FIG. 3A. Otherwise, if the Gaussian model is used, the sensor response may be approximated as the weighted sum of Equations 6 (i.e., the weighted sum of S₁, S₂, and S₃) with appropriate Gaussian approximation coefficients, which can be solved along with Equation 2 for the nadir angle α, as described above in conjunction with FIGS. 3A and 3E. When solving Equation 2 for a, the Earth disk radius ρ determined at block 404 can be used. This processing described herein is performed for each sensor reading obtained at block 402, resulting in two nadir angles φ₁ and φ₂ in the case of two horizon sensors.

At block 408, possible nadir vector solutions are computed. In some embodiments, this corresponds to solving a system of equations (e.g., Equations 3) for two possible nadir vectors (e.g., vectors {circumflex over (P)} and {circumflex over (P)}′), as described above in conjunction with FIG. 3B.

At block 410, a reference sensor reading is obtained, such as a reading from reference sensor 206 in FIG. 2. At block 412, one of the nadir vectors solutions obtained at block 408 is chosen based upon the reference sensor reading. As described above in conjunction with FIGS. 3C and 3D, if the angle separation θ_(pp′) between the two possible nadir solutions is sufficiently large, the nadir vector ambiguity can be resolved by comparing the two possible solutions to the reading of the reference sensor.

At block 414, the spacecraft's attitude can be adjusted based upon the chosen nadir vector. For example, actuators (such as actuators 224 in FIG. 2) may be employed to perform 3-axis stabilization using the chosen nadir vector and a second reference vector (e.g., a Sun vector). Any suitable attitude control techniques can be used.

In some embodiments, the processing of blocks 402-412 is implemented within an attitude determination module 202 of FIG. 2, and the processing of block 414 is implemented within an attitude control module 222 of FIG. 2.

FIG. 5 shows an illustrative computer or other processing device 500 that can perform at least part of the processing described herein. In some embodiments, the spacecraft 100 of FIG. 1 includes computer 500, or otherwise forms a portion thereof. The computer 500 includes a processor 502, a volatile memory 504, a non-volatile memory 506 (e.g., hard disk), an output device 508 and a graphical user interface (GUI) 510 (e.g., a mouse, a keyboard, a display, for example), each of which is coupled together by a bus 518. The non-volatile memory 506 stores computer instructions 512, an operating system 514, and data 516. As shown, the computer instructions 512 may include attitude determination module instructions 512 and/or attitude control module instructions 514 corresponding to computer instructions for the modules 202 and 222 of FIG. 2, respectively. The data 516 may include sensor boresight direction data 516 a indicating the precision direction of the horizon and/or reference sensors relative to a spacecraft body frame. In some embodiments, data 516 includes one or more lookup tables 516 b used to solve for nadir vectors, as described above in conjunction with FIGS. 3A-3F. In one example, the computer instructions 512 are executed by the processor 502 out of volatile memory 504. In some embodiments, an article 520 comprises non-transitory computer-readable instructions.

Processing may be implemented in hardware, software, or a combination of the two. In embodiments, processing is provided by computer programs executing on programmable computers/machines that each includes a processor, a storage medium or other article of manufacture that is readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device to perform processing and to generate output information.

The system can perform processing, at least in part, via a computer program product, (e.g., in a machine-readable storage device), for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs may be implemented in assembly or machine language. The language may be a compiled or an interpreted language and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. A computer program may be stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer. Processing may also be implemented as a machine-readable storage medium, configured with a computer program, where upon execution, instructions in the computer program cause the computer to operate.

Processing may be performed by one or more programmable processors executing one or more computer programs to perform the functions of the system. All or part of the system may be implemented as special purpose logic circuitry (e.g., an FPGA (field programmable gate array) and/or an ASIC (application-specific integrated circuit)).

All references cited herein are hereby incorporated herein by reference in their entirety.

Having described certain embodiments, which serve to illustrate various concepts, structures, and techniques sought to be protected herein, it will be apparent to those of ordinary skill in the art that other embodiments incorporating these concepts, structures, and techniques may be used. Elements of different embodiments described hereinabove may be combined to form other embodiments not specifically set forth above and, further, elements described in the context of a single embodiment may be provided separately or in any suitable sub-combination. Accordingly, it is submitted that that scope of protection sought herein should not be limited to the described embodiments but rather should be limited only by the spirit and scope of the following claims. 

What is claimed is:
 1. A system for spacecraft attitude determination, the system comprising: a plurality of horizon sensors, each of the plurality of horizon sensors having a respective field-of-view (FOV), each of the plurality of horizon sensors having a sensitivity to the portion of the respective FOV obscured by Earth; an attitude determination module coupled to the plurality of horizon sensors, the attitude determination module configured to: obtain horizon sensor readings from the horizon sensors; determine an Earth disk radius in a spacecraft's body frame; convert the horizon sensor readings to nadir angles using a Gaussian approximation including dividing the horizon sensor FOV into a plurality of constant sensitivity regions each having a Gaussian approximation coefficient; and estimate a nadir vector using the nadir angles and the Earth disk radius.
 2. The system of claim 1 further comprising a reference sensor coupled to provide reference sensor readings to the attitude determination module, wherein the attitude determination module is configured to: determine a plurality of possible nadir vector solutions using the nadir angles and the Earth disk radius; obtain a reference sensor reading; and choose one of the plurality of possible nadir vector solutions based upon the reference sensor reading.
 3. The system of claim 2, wherein the plurality of horizon sensors comprise a first horizon sensor and a second horizon sensor mounted along orthogonal axes.
 4. The system of claim 1 wherein at least one of the plurality of horizon sensors comprises a thermopile.
 5. The system of claim 1 wherein at least one of the plurality of horizon sensors comprises an infrared radiation (IR) sensor.
 6. The system of claim 3 wherein the reference sensor comprises a magnetometer or a Sun sensor.
 7. The system of claim 1 further comprising an attitude control module coupled to receive estimated nadir vector information from the attitude determination module, the attitude control module configured to adjust a spacecraft's attitude based upon received estimated nadir vector information.
 8. The system of claim 1 wherein the attitude determination module is configured to: receive spacecraft position information; and determine an Earth disk radius in a spacecraft's body frame based upon the spacecraft position information.
 9. A method for spacecraft attitude determination, the method comprising: obtaining horizon sensor readings from a plurality of horizon sensors, each of the plurality of horizon sensors having a respective field-of-view (FOV), each of the plurality of horizon sensors having a sensitivity to the portion of the respective FOV obscured by Earth; determining an Earth disk radius in a spacecraft's body frame; converting the horizon sensor readings to nadir angles using a Gaussian approximation including dividing the horizon sensor FOV into a plurality of constant sensitivity regions each having a Gaussian approximation coefficient; and estimating a nadir vector using the nadir angles and the Earth disk radius.
 10. The method of claim 9 further comprising: determining a plurality of possible nadir vector solutions using the nadir angles and the Earth disk radius; obtaining a reference sensor reading from a reference sensor; and choosing one of the plurality of possible nadir vector solutions based upon the reference sensor reading.
 11. The method of claim 10, wherein obtaining horizon sensor readings from horizon sensors comprises obtaining a horizon sensor readings from a first horizon sensor and from a second horizon sensor mounted along orthogonal axes.
 12. The method of claim 9 wherein obtaining horizon sensor readings from horizon sensors comprises obtaining readings from thermopiles.
 13. The method of claim 9 wherein obtaining horizon sensor readings from horizon sensors comprises obtaining readings from infrared radiation (IR) sensors.
 14. The method of claim 11 wherein obtaining a reference sensor reading comprises obtaining a reading from a magnetometer or a Sun sensor.
 15. The method of claim 9 further comprising adjusting a spacecraft's attitude based upon an estimated nadir vector.
 16. The method of claim 9 further comprising receiving spacecraft position information, wherein determining an Earth disk radius in a spacecraft's body frame comprises determining an Earth disk radius based upon the spacecraft position information.
 17. The system of claim 1 wherein the attitude determination module is configured to determine the Earth disk radius in the spacecraft's body frame using a geocentric latitude of the spacecraft, an equatorial radius of the Earth, and a polar radius of the Earth.
 18. The system of claim 1 wherein the plurality of horizon sensors comprise a first horizon sensor having a first boresight vector in the spacecraft's body frame and a second horizon sensor having a second boresight vector in the spacecraft's body frame, wherein the nadir angles include a first nadir angle and a second nadir angle, and wherein the attitude determination module is configured to estimate the nadir vector by finding the intersection of a first cone defined by the first boresight vector and the first nadir angle and a second cone defined by the second boresight vector and the second nadir angle.
 19. A method for spacecraft attitude determination, the method comprising: obtaining horizon sensor readings from a plurality of horizon sensors, each of the plurality of horizon sensors having a respective field-of-view (FOV), a sensitivity to the portion of the respective FOV obscured by Earth, and a boresight vector in a spacecraft body frame; determining an Earth disk radius in a spacecraft's body frame using a geocentric latitude of the spacecraft, an equatorial radius of the Earth, and a polar radius of the Earth; converting the horizon sensor readings to nadir angles; and estimating a nadir vector using the Earth disk radius and by finding the intersection of a first cone defined by the boresight vector of a first one of the plurality of horizon sensors and a first one of the nadir angles and a second cone defined by the boresight vector of a second one of the plurality of horizon sensors and a second one of the nadir angles. 